Self-Organizing Map, SOM

자기조직화지도(Self-Organizing Map, SOM)
SOM 알고리즘은 코호넨 맵이라고 불리며, 인공신경망 기반 차원축소와 구집화를 동시에 수행할 수 있는
알고리즘이다.

다차원 데이터를 축소해 저차원의 지도를 생성하고, 이를 통해 데이터를 가시화하는데 유용하다.
고차원 데이터를 파악하기 쉬운 저차원(2차원) 공간에 정렬하여 나타내는 시각화 방법
install.packages(‘kohonen’)

> cal<-c(52, 160, 89, 57, 34, 32, 30, 69)

> car<-c(112.4, 8.5, 22.8, 14.5, 8.2, 7.7, 7.6, 18.1)

> fat<-c(0.2, 14.7, 1.3, 0.7, 0.2, 0.3, 0.2, 0.2)

> pro<-c(0.3, 2.0, 1.1, 0.3, 0.8, 0.7, 0.6, 0.7)

> fib<-c(2.4, 6.7, 2.6, 2.4, 0.9, 2.0, 0.4, 0.9)

> sug<-c(10.4, 0.7, 12.2, 9.9, 7.9, 4.7, 6.2, 15.5)

> fruits<-data.frame(cal, car, fat, pro, fib, sug)

> names<-c('apple', 'avocado', 'banana', 'blueberry', 'melon', 'watermelon', 'strawberry', 'grape’)

> rownames(fruits)<-names


> library(kohonen)

> fruits_scaled<-scale(fruits, center=T, scale=T)

# 자지조직지도 수행, 경쟁층의 노드 수는 1X3으로 3개

> result<-som(fruits_scaled, grid=somgrid(3, 1))


> par(mfrow=c(1, 2))

> plot(result)

> plot(result, type='mapping', labels=names)